package com.lin.manager.notice.service;

import com.lin.manager.common.req.QueryPage;
import com.lin.manager.common.resp.DataPage;
import com.lin.manager.notice.model.dto.NoticeUserDTO;
import com.lin.manager.notice.model.entity.NoticeEntity;
import com.lin.manager.notice.model.vo.NoticeVO;

/**
 * @作者: 林江
 * @创建时间: 2024-04-10 19:11:15
 * @功能:
 */
public interface NoticeService {
    DataPage<NoticeEntity> listCreatePage(QueryPage page);

    DataPage<NoticeUserDTO> listRecivePage(QueryPage page);

    void add(NoticeVO vo);

    /**
     * 只有草稿状态的才能修改
     *
     * @param vo
     */
    void update(NoticeVO vo);

    /**
     * 只有草稿状态的才能删除
     *
     * @param ids
     */
    void del(Long[] ids);

    /**
     * 详情
     *
     * @param id   通知公告主键
     * @param sign 1-已读
     * @return
     */
    NoticeVO getById(Long id, Integer sign);

    /**
     * 发送
     *
     * @param id
     */
    void send(Long id);

    /**
     * 统计未读数量
     *
     * @return
     */
    Integer unread();
}
